PHP 5 >= 5.3.0, PHP 7, PHP 8
mysqli_stmt::__construct() 是 MySQLi 扩展中 mysqli_stmt 类的构造方法,用于初始化一个新的预处理语句对象。该构造方法通常由 mysqli::prepare() 方法内部调用,手动调用较少见,适用于需要显式创建 mysqli_stmt 对象的场景。
public mysqli_stmt::__construct(mysqli $mysql, string $query)
返回新创建的 mysqli_stmt 对象。构造函数本身无返回值,但如果创建失败,通常会抛出异常或产生错误。
以下示例展示了如何通过构造函数手动创建一个 mysqli_stmt 对象并执行一个简单的查询。
if ($mysqli->connect_errno) {
die("连接失败: " . $mysqli->connect_error);
}
// 通过构造函数手动创建 mysqli_stmt 对象
$stmt = new mysqli_stmt($mysqli, "SELECT name FROM users WHERE id = ?");
if (!$stmt) {
die("准备语句失败: " . $mysqli->error);
}
$id = 1;
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($name);
$stmt->fetch();
echo "用户姓名: " . $name;
$stmt->close();
$mysqli->close();
?>
代码中首先创建了一个 mysqli 连接,然后通过 mysqli_stmt::__construct() 方法手动创建了一个预处理语句对象,查询 users 表中指定 id 的用户姓名。接着绑定参数、执行语句、获取结果并输出,最后关闭语句和连接。